//
//  AlertView.h
//  DGGMerchant
//
//  Created by Dwt on 2019/8/28.
//  Copyright © 2019 DGG. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

typedef void(^Confirm)(void);
typedef void(^Cancel)(void);

@interface AlertView : UIView

/*
====================================================================================
基本使用方法
 AlertView *alert = [[AlertView alloc]init];
 
 方法一：自定义(支持无按钮、单按钮、双按钮，按钮标题都不设置则会是提示消息，自动显示，可设置duration)
 alert.image = @"life";
 alert.message = @"下雨天";
 alert.messageFont = [UIFont fontWithName:@"PingFangSC-Regular" size:14];
 alert.messageColor = [UIColor blackColor];
 alert.cancelTitle = @"取消";
 alert.cancelFont = [UIFont fontWithName:@"PingFangSC-Regular" size:14];
 alert.cancelColor = [UIColor redColor];
 ...
 [alert show];
 
 方法二：便捷方法（取消按钮使用默认文字和颜色）
 @weakify(self);
 [alert showImage:@"Alert_icon_exclaim"
 message:@"请设置支付密码用于交易"
 confirmTitle:@"确定"
 confirmColor:kThemeColor
 confirm:^{
 @strongify(self);
 
 }];

 方法三：提示消息，无按钮，提示框自动消失
 
 [alert showMessage:@"下雨天" duration:2];
 
 其他方法可见Api
======================================================================================
*/
 
 
/**
 图片
 */
@property (nonatomic, copy) NSString *image;

/**
 标题
 */
@property (nonatomic, copy) NSString *title;

/**
 消息
 */
@property (nonatomic, copy) NSString *message;

/**
 左边按钮文字
 */
@property (nonatomic, copy) NSString *cancelTitle;

/**
 右边按钮文字
 */
@property (nonatomic, copy) NSString *confirmTitle;

/**
 标题颜色
 */
@property (nonatomic, strong) UIColor *titleColor;

/**
 消息颜色
 */
@property (nonatomic, strong) UIColor *messageColor;

/**
 左边按钮文字颜色
 */
@property (nonatomic, strong) UIColor *cancelColor;

/**
 左边按钮文字颜色
 */
@property (nonatomic, strong) UIColor *confirmColor;

/**
 标题文字大小
 */
@property (nonatomic, strong) UIFont *titleFont;

/**
 消息文字大小
 */
@property (nonatomic, strong) UIFont *messageFont;

/**
 左边按钮文字大小
 */
@property (nonatomic, strong) UIFont *cancelFont;

/**
 右边按钮文字大小
 */
@property (nonatomic, strong) UIFont *confirmFont;

/**
 显示时间
 */
@property (nonatomic, assign) NSTimeInterval duration;

/**
 左边点击回调
 */
@property (nonatomic, copy) void (^cancelClick)(void);

/**
 左边点击回调
 */
@property (nonatomic, copy) void (^confirmClick)(void);


/**
 单例

 @return 单例
 */
+ (instancetype)shareInstance;

/**
 显示
 */
- (void)show;

/**
 隐藏
 */
- (void)dismiss;


/**
 消息提示（无图片，无按钮）

 @param message 消息
 @param duration 时间
 */
- (void)showMessage:(NSString *)message
           duration:(NSTimeInterval)duration;

/**
 消息提示（有图片，无按钮）
 
 @param image 图片
 @param message 消息
 @param duration 时间
 */
- (void)showImage:(NSString *)image
          message:(NSString *)message
         duration:(NSTimeInterval)duration;

/**
 消息提示（有图片，有一个按钮）
 
 @param image 图片
 @param message 消息
 */
- (void)showImage:(NSString *)image
          message:(NSString *)message
     confirmTitle:(NSString *)confirmTitle
          confirm:(Confirm)confirm;

/**
 弹窗(左边取消，右边按钮可定制颜色，标题)

 @param image 图片
 @param message 消息
 @param confirmTitle 右边按钮标题
 @param confirmColor 右边按钮颜色
 @param confirm 右边点击回调
 */
- (void)showImage:(NSString *)image
          message:(NSString *)message
     confirmTitle:(NSString *)confirmTitle
     confirmColor:(UIColor *)confirmColor
          confirm:(Confirm)confirm;
/**
 弹窗显示

 @param image 图片
 @param title 标题
 @param message 消息
 @param cancelTitle 左边按钮文字
 @param confirmTitle 右边按钮文字
 @param cancel 左边按钮点击回调
 @param confirm 右边按钮点击回调
 */
- (void)showImage:(NSString *)image
            title:(NSString *)title
          message:(NSString *)message
      cancelTitle:(NSString *)cancelTitle
     confirmTitle:(NSString *)confirmTitle
           cancel:(Cancel)cancel
          confirm:(Confirm)confirm;


@end

NS_ASSUME_NONNULL_END
